package vista;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;

@SuppressWarnings("serial")
public class VistaInicio extends JFrame{
	
	private ImageIcon titulo = new ImageIcon(getClass().getResource("/imagenes/vehiculos/titulo.png"));
	private JLabel title2 = new JLabel(titulo);
	private Panel panelFondo = new Panel(new BorderLayout());
	private JPanel panelBoton = new JPanel();
	
	JButton start = new JButton("START");
	
	private JPanel panelNombre = new JPanel();
	JTextField nombre = new JTextField(10);
	
	private ImageIcon autoIc = new ImageIcon(getClass().getResource("/imagenes/vehiculos/auto.gif"));
	private ImageIcon motoIc = new ImageIcon(getClass().getResource("/imagenes/vehiculos/moto.gif"));
	private ImageIcon camioIc = new ImageIcon(getClass().getResource("/imagenes/vehiculos/camioneta.gif"));

	private JPanel EleccionVehiculo = new JPanel();
	private JPanel panelBotones = new JPanel();
	JButton autoButton = new JButton(autoIc);
	JButton motoButton = new JButton(motoIc);
	JButton camioButton = new JButton(camioIc);
	
	private JPanel EleccionDificultad = new JPanel();
	private JPanel DificultadPanel = new JPanel();
	JButton Facil = new JButton("FACIL");
	JButton Medio = new JButton("MEDIO");
	JButton Dificil = new JButton("DIFICIL");
	
	private JPanel panelCentral = new JPanel();
	
	JMenuItem openItem = new JMenuItem("Open...");  //Con esto agregan botones
	JMenuItem exitItem = new JMenuItem("Exit");
	
	public VistaInicio(){
		//Genero Panel para ingresarNombre
		panelNombre.setLayout(new FlowLayout());
		panelNombre.setOpaque(false);
		
		nombre.setBackground(Color.WHITE);
		
		JLabel jugador = new JLabel("INGRESAR NOMBRE:");
		jugador.setForeground(Color.ORANGE);
		
		panelNombre.add(jugador);
		panelNombre.add(nombre);
		
		//Creo Panel con Botones de coches
		panelBotones.setLayout(new GridLayout(1,3,50,50));
		panelBotones.setOpaque(false);

		autoButton.setBackground(Color.BLUE);
		autoButton.setOpaque(false);
		autoButton.setBorder(new LineBorder(Color.BLUE,5));
		panelBotones.add(autoButton);

		motoButton.setBackground(Color.RED);
		motoButton.setBorder(new LineBorder(Color.RED,5));
		motoButton.setOpaque(false);
		panelBotones.add(motoButton);

		camioButton.setBackground(Color.YELLOW);
		camioButton.setBorder(new LineBorder(Color.YELLOW,5));
		camioButton.setOpaque(false);
		panelBotones.add(camioButton);
		
		//Genero Panel de Eleccion de Vehiculo
		EleccionVehiculo.setOpaque(false);
		EleccionVehiculo.setLayout(new BorderLayout());
		
		JLabel eleccion = new JLabel("SUBIR A VEHICULO:");
		eleccion.setForeground(Color.GREEN);
		EleccionVehiculo.add(eleccion, BorderLayout.NORTH);
		EleccionVehiculo.add(panelBotones, BorderLayout.CENTER);
		
		//Seteo el Panel con botoens de dificultad
		DificultadPanel.setLayout(new GridLayout(1,3,50,50));
		DificultadPanel.setOpaque(false);

		Facil.setBackground(Color.YELLOW);
		DificultadPanel.add(Facil);

		Medio.setBackground(Color.ORANGE);
		DificultadPanel.add(Medio);

		Dificil.setBackground(Color.RED);
		DificultadPanel.add(Dificil);	
		
		//Genero Panel de Eleccion de Dificultad
		EleccionDificultad.setOpaque(false);
		EleccionDificultad.setLayout(new BorderLayout());
		
		JLabel eleccion2 = new JLabel("ELEGIR DIFICULTAD:");
		eleccion2.setForeground(Color.YELLOW);
				
		EleccionDificultad.add(eleccion2, BorderLayout.NORTH);
		EleccionDificultad.add(DificultadPanel, BorderLayout.CENTER);
		
		//Genero Panel Central
		panelCentral.setOpaque(false);
		panelCentral.setLayout(new BorderLayout());
		panelCentral.add(panelNombre, BorderLayout.NORTH);
		panelCentral.add(EleccionVehiculo, BorderLayout.CENTER);
		panelCentral.add(EleccionDificultad,BorderLayout.SOUTH);
		
		//Configuro Boton Start
		start.setForeground(Color.GREEN);
		start.setBackground(Color.RED);
		panelBoton.add(start);
		panelBoton.setOpaque(false);
		
		//Agrego todos los paneles al general
		panelFondo.add(title2, BorderLayout.NORTH);
		panelFondo.add(panelCentral,BorderLayout.CENTER);
		panelFondo.add(panelBoton, BorderLayout.SOUTH);
		
		//Agrego el Menu
		JMenu file = new JMenu("File");
    	file.setMnemonic('F');
    	
    	openItem.setMnemonic('O');
    	file.add(openItem);	
    	
    	file.addSeparator();

    	exitItem.setMnemonic('E');
    	file.add(exitItem);
    	
    	JMenuBar bar = new JMenuBar();
       	bar.add(file);
       	this.setJMenuBar(bar);
    	
    	/***/
		
		setTitle("GPS-Challenge");
		add(panelFondo);
		setSize(500, 350);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setVisible(true);
		
		validate();
		
	}
	
	//Panel de fondo con las imagenes
	private class Panel extends JPanel{
		
		private ImageIcon fondo= new ImageIcon(getClass().getResource("/imagenes/vehiculos/fondo.gif"));
		private Image img1 = fondo.getImage();
		
		public Panel(LayoutManager l) {
			super.setLayout(l);
		}

		@Override
		protected void paintComponent(Graphics g){
			super.paintComponent(g);
			g.drawImage(img1, 0, 0,this.getWidth(),this.getHeight(), this);
		}
	}	

	
	
	public String getNombre(){
		return nombre.getText();
	}
	
	
	public void addBotonComenzar(ActionListener apretaStart){
		
		start.addActionListener(apretaStart);
		
	}
	
	public void addElegirAuto(ActionListener eligeAuto){
		
		autoButton.addActionListener(eligeAuto);
		
	}
	
	public void addElegirMoto(ActionListener eligeMoto){
		
		motoButton.addActionListener(eligeMoto);
		
	}
	
	public void addElegirCamioneta(ActionListener eligeCamineta){
		
		camioButton.addActionListener(eligeCamineta);
		
	}
	
	public void addElegirFacil(ActionListener eligeFacil){
		
		Facil.addActionListener(eligeFacil);
		
	}
	
	public void addElegirMedio(ActionListener eligeMedio){
		
		Medio.addActionListener(eligeMedio);
		
	}
	
	public void addElegirDifcil(ActionListener eligeDificil){
		
		Dificil.addActionListener(eligeDificil);
		
	}
	
	public void addBotonMenuOpen(ActionListener abrir){
		
		openItem.addActionListener(abrir);
		
	}

	public void addBotnManuSalir(ActionListener salir){
	
		exitItem.addActionListener(salir);
	
	}
	
	public void diplayErrorMessage(String errorMessage){
		
		JOptionPane.showMessageDialog(this, errorMessage);
	}
}